package com.wiselink.naver.productcatalog.request;

import com.wiselink.naver.productcatalog.request.enums.DeliveryAreaType;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;

/**
 * 各地区追加配送费
 */
@Getter
@Setter
@ToString(callSuper = true)
public class DeliveryFeeByArea {
    /**
     * 各地区追加配送费权域代码
     * <p>批次交割组登记时，输入各地区附加交割费区域的代码。 是否可以合并发货，如为true，则该合并发货组设定的值适用（如果发货属性为ARRIVAL_GUARANTEE除外）。</p>
     * 지역별 추가 배송비 권역 코드
     * 묶음배송 그룹 등록 시 지역별 추가 배송비 권역을 입력하기 위한 코드입니다. 묶음배송 가능 여부가 true인 경우 묶음배송 그룹에 설정된 값이 적용됩니다(배송 속성이 ARRIVAL_GUARANTEE인 경우 제외).
     */
    @NotNull(message = "地区追加配送费权域代码不能为空")
    private DeliveryAreaType deliveryAreaType;
    /**
     * 2区域追加配送费
     * <p>2区域的情况,"济州及岛屿山区"地区的追加配送费。 3区域的情况,"济州"地区追加配送费。 是否可以合并发货，如为true，则该合并发货组设定的值适用（如果发货属性为ARRIVAL_GUARANTEE除外）。</p>
     * 2권역 추가 배송비
     * 2권역인 경우 "제주 및 도서산간" 지역 추가 배송비. 3권역인 경우 "제주" 지역 추가 배송비. 묶음배송 가능 여부가 true인 경우 묶음배송 그룹에 설정된 값이 적용됩니다(배송 속성이 ARRIVAL_GUARANTEE인 경우 제외).
     */
    @Max(value = 200000, message = "2区域追加配送费不能超过200000")
    private Integer area2extraFee;
    /**
     * 3区域追加配送费
     * <p>"济州外岛屿山区"地区追加配送费。delivery Area Type为3区域时必需。 是否可以合并发货，如为true，则该合并发货组设定的值适用（如果发货属性为ARRIVAL_GUARANTEE除外）。</p>
     * 3권역 추가 배송비
     * "제주 외 도서산간" 지역 추가 배송비. deliveryAreaType이 3권역인 경우 필수. 묶음배송 가능 여부가 true인 경우 묶음배송 그룹에 설정된 값이 적용됩니다(배송 속성이 ARRIVAL_GUARANTEE인 경우 제외).
     */
    @Max(value = 200000, message = "3区域追加配送费不能超过200000")
    private Integer area3extraFee;
}
